﻿/*****************************************介绍*****************************************
 * 作者：24531
 * 创建时间：2025-08-19 23:28:45
 * 功能：呼吸灯效果
**************************************************************************************/

using UnityEngine;
using UnityEngine.UI;

[RequireComponent(typeof(Image))]
public class BreathingLight : MonoBehaviour
{
    [Header("呼吸灯颜色设置")]
    public Color StartColor = Color.white;      // 起始颜色
    public Color EndColor = Color.red;          // 目标颜色

    [Header("呼吸灯速度(周期)")]
    public float Duration = 2f; // 一个完整呼吸周期时长（秒）

    private Image m_TargetImage;
    private bool m_IsRunning = false;
    private float m_Timer = 0f;

    private void Awake()
    {
        m_TargetImage = GetComponent<Image>();
    }

    private void OnEnable()
    {
        m_IsRunning = true;
        m_Timer = 0f;
    }

    private void OnDisable()
    {
        m_IsRunning = false;
    }

    private void Update()
    {
        if (!m_IsRunning || m_TargetImage == null) return;

        // t 在 0~1 之间来回循环
        m_Timer += Time.deltaTime;
        float t = Mathf.PingPong(m_Timer / Duration, 1f);

        // 在两个颜色之间插值
        m_TargetImage.color = Color.Lerp(StartColor, EndColor, t);
    }
}
